package com.software.comment.service;




import com.software.comment.pojo.Like;

import java.util.List;

/**
 * @author 周昊
 * @since 2024/12/16 11：34
 * @version 1.0
 */
public interface LikeService {

    /**
     * 展示评论点赞列表
     * @param taskid 评论所在任务ID
     */
    List<Like> showLikes(Integer taskid);

    /**
     * 添加点赞评论信息
     *
     * @param username 执行点赞的用户名
     * @param commentId 评论ID
     */
    void addlike(String username, Integer commentId);

    /**
     * 评论的点赞数
     *
     * @param username 执行点赞的用户名
     * @param commentId 评论ID
     */
    Integer countByCommentId(Integer commentId,String username);

    /**
     * 取消点赞，删除Redis缓存
     *
     * @param isLikedInDB 点赞状态，true表示已点赞，false表示未点赞
     * @param username    执行取消点赞的用户名
     * @param commentId   评论ID
     */
    void toChangeLike(Boolean isLikedInDB, String username, Integer commentId);

    /**
     * 检查点赞状态，优先从Redis缓存中获取，如果没有则查询数据库
     *
     * @param commentId 评论ID
     * @param username 执行点赞的用户名
     */
    Integer checkLike(Integer commentId, String username);

    /**
     * 查找like状态
     *
     * @param commentId 评论id
     * @param username 用户名
     * @return 1表示已点赞，0表示未点赞
     */
    Integer selectLikeByCommentIdAndUsername(Integer commentId, String username);
}